<?php
require_once 'Zend/Db/Table/Abstract.php';

class Model_Database_Datos {
	
	protected function conecta(){
		//$cn = mssql_connect("192.168.0.13","desarrollo","desarrollo");
		#$cn = mssql_connect("192.168.0.3","Sigta","");
	    $cn=mssql_connect("192.168.0.10","sa","S@2011");
		//echo "192.168.0.10<br>";
		return $cn;
	}
	
	public function ejecutasql($nombrestore,$parametros,$wutf8encode = true){
		$cn = $this->conecta();
		
		if (!$cn){
			echo 'Error de Coneccion BD';
		}else{
			mssql_select_db("integralsmp", $cn);
			
			$cadenadatos = '';
			if($parametros != '' || $parametros != null){
				$cparametros = count($parametros);
				if($cparametros > 0){
					for($i=0; $i < $cparametros; ++$i){
						$nompar = $parametros[$i][0];
						$valpar = utf8_decode($parametros[$i][1]);
						$valpar = str_replace("'", "''", $valpar);
						$cadenadatos.= $nompar."='".$valpar."',";
					}
					$cadenadatos = substr($cadenadatos,0,strlen($cadenadatos)-1);
				}
			}
			$instruccion = 'exec '.$nombrestore.' '.$cadenadatos;
			//echo($instruccion);

			$result = mssql_query($instruccion);
			
			if (!$result) print "MSSQL Query failed: " . htmlentities(mssql_get_last_message()) . "<br />".$instruccion."\n";
			
			$contador = 0;
			$datos = null;

			while(($row = mssql_fetch_array($result)) != false){
				$c = count($row)/2;
				for($i = 0; $i < $c; ++$i){
					$cadreemp = ($wutf8encode)?utf8_encode($row[$i]):$row[$i];
					//$cadreemp = utf8_encode($row[$i]);
//					$cadreemp = str_replace('&amp', '&', htmlentities($row[$i]));
//					$cadreemp = utf8_decode(utf8_encode($row[$i]));
//					$cadreemp = $row[$i];
//					$cadreemp = str_replace("'", ' ', $cadreemp);
//					$cadreemp = str_replace('"', ' ', $cadreemp);
//					$cadreemp = str_replace('|', '', $cadreemp);
//					$cadreemp = str_replace("'", '\'', $cadreemp);
//					$cadreemp = str_replace('"', '&#34;', $cadreemp);
//					$cadreemp = str_replace('|', '&#124;', $cadreemp);
//					$cadreemp = str_replace('\\', '', $cadreemp);
//					$arraydatos[$i] = $cadreemp;
					$arraydatos[$i] = $cadreemp; //utf8_encode($row[$i]);
				}
				$datos[$contador] = $arraydatos;
//				print_r($datos);
				++$contador;
			}
			
			
			mssql_close($cn);
			return $datos;
		}
	}
	
	public function ejecutafuncsql($nombrefunc,$parametros){ 
		$cn = $this->conecta();
	
		if (!$cn){
			echo 'Error de Coneccion BD';
		}else{
			mssql_select_db("integralsmp", $cn);
			
			$cparametros = count($parametros);
			$cadenadatos = '';
			if($cparametros > 0){
				for($i = 0; $i < $cparametros; ++$i){
					$cadenadatos .= "'".$parametros[$i]."',";	
				}
				$cadenadatos = substr($cadenadatos,0,strlen($cadenadatos)-1);
			}

			$instruccion = 'select '.$nombrefunc.' ('.$cadenadatos.')';

			$result = mssql_query($instruccion);
			$valor = mssql_fetch_array($result);
	
			mssql_close($cn);
			return $valor;
		} 
	}
}